//
//  GDMVisitorLoginView.swift
//  GDMweibo
//
//  Created by mac on 15/11/26.
//  Copyright © 2015年 mac. All rights reserved.
//

import UIKit


// 所有继承自 NSObject 的对象，都可以实现协议方法
// protocol VisitorLoginViewDelegate <NSObject>

//定义一个协点击按钮的时候让别的控制器去跳转
protocol visitorLoginViewDelegate : NSObjectProtocol {
    
//    登录的方法
    func visitorLoginViewDidSelect()
//    注册的方法
    func visitorRegiesterViewDidSelect()
    
}

class GDMVisitorLoginView: UIView {

//    MARK 代理的属性
    weak var visitorLoginDelegate : visitorLoginViewDelegate?
    
//    MARK:属性
//    齿轮
    @IBOutlet weak var cheelImgView: UIImageView!
//房子
    @IBOutlet weak var houseView: UIImageView!
    
    @IBOutlet weak var messageLabel: UILabel!

    
//    MARK:方法
    
//    定义一个函数，让外界给我传递一个值
//    在这里设置一个初始值的原因是不需要到处修改代码
    func setupInfo (imageName : String ,message : String ,isHome : Bool = false){
        
        houseView.hidden = !isHome
        
//        判断如果要是首页的时候就让他显示那个齿轮的图片，要是不是就不让他显示
        if isHome {
            
            houseView.image = UIImage(named: imageName)
        
//            开启动画
            startAnimation()
            
        }else {
            
//            这一步的作用就是，要是不是首页的时候，就让那个图片显示的大一些
            cheelImgView.image = UIImage(named: imageName)
            
//            stopAnimation() 
            
        }
        
        messageLabel.text = message
        
//        这个图片只有首页上面有，所以还是要进行一个判断
//        if isHome {
//            
////            开启动画
//            startAnimation()
//        }
//        else{
//            
////            关闭动画
//            stopAnimation()
//        }
//        isHome ? startAnimation() : stopAnimation()
        
    }
    
    func startAnimation () {
        
//        创建动画,开启动画
        let animation = CABasicAnimation(keyPath: "transform.rotation")
        
//        每次旋转的角度
        animation.toValue = 2 * M_PI
        
//        旋转的次数
        animation.repeatCount = MAXFLOAT

//        旋转时间
        animation.duration = 20.0
        
//        还有一个属性,动画完成后是否将动画在图层中移除，默认是true，就是在设置一个动画之后，点击跳转控制器他不进行旋转了，使用这个属性可以进行旋转
//        animation.removedOnCompletion = false
        
//        添加动画,是添加到layer上
        cheelImgView.layer.addAnimation(animation, forKey: nil)
        
    }
//    
//    func stopAnimation () {
//        
////        移除动画
//        cheelImgView.layer.removeAllAnimations()
//        
//    }
    
    
//    按钮的点击事件，点击按钮的时候让他跳转控制器，但是视图是不会去跳转控制器的，只有让控制器去执行
    @IBAction func attractBtn(sender: AnyObject) {
        
//        点击按钮的时候进行判断是否遵守了协议
        visitorLoginDelegate?.visitorRegiesterViewDidSelect()
        
    }
    @IBAction func loginBtn(sender: AnyObject) {
        
//        判断点击按钮了之后是否遵守了协议
        visitorLoginDelegate?.visitorLoginViewDidSelect()
        
    }
}
